package edu.wpi.cs509.ui;

import java.util.List;

import edu.wpi.cs509.clientlogic.UserSession;
import edu.wpi.cs509.common.exceptions.ServerUnreachable;
import edu.wpi.cs509.ui.intfc.GameInterface;
import edu.wpi.cs509.ui.intfc.PlayerStatsInterface;
import edu.wpi.cs509.ui.intfc.RulesInterface;

public interface StrategoClientInterface {

	void displayConnectionLostDialog();

	void setState(ClientState loggedOut);

	void displayMainFrame();

	void setUserSession(UserSession session);

	boolean isLoggedIn();

	void displayLeaderBoard(List<PlayerStatsInterface> statsList, int rank);

	StrategoClientFrame getClientFrame();

	void displayPlayerStats(PlayerStatsInterface myStats);

	void setActiveGame(GameInterface game);

	void setObservedGame(GameInterface game);

	void displayRules(RulesInterface rules);

	void displayLoginFailedDialog();

	void quit();

	void getGames();

	int displayQuitConfirmDialog();

	void joinGame(long gameID);

	void startNewGame();

	void login(String username, String password, String host) throws ServerUnreachable;

	void addObserveGame(long gameID);

}
